import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

class Solution {
    public static void main(String[] args) {
        int[] arr = { 2,4,6,8,10} ;
        System.out.println(numberOfArithmeticSlices(arr));
    }
     static int numberOfArithmeticSlices(int[] nums) {
         int len = nums.length ;
         Map<Long,List<Integer>> hash = new HashMap<>() ;
         for(int i=0; i < len ; i ++){
             long tmp =(long) nums[i] ;
             if(!hash.containsKey(tmp)){
                 hash.put(tmp, new ArrayList<Integer>());
             }
             hash.get(tmp).add(i) ;

         }

         long[][] dp = new long[len][len] ;
         long sum = 0 ;
         for(int j = 2 ; j < len ; j ++){
             for(int i = 1 ; i < j ; i ++){
                 long a = 2L*nums[i] -nums[j] ;
                 if(hash.containsKey(a)){
                     for(int k : hash.get(a)){
                         if(k<i){
                             dp[i][j] += dp[k][i] + 1 ;
                         }else{
                             break ; // 小优化 ;
                         }
                     }
                 }
                 sum += dp[i][j];
             }
         }
         return (int) sum ;

     }
}